/**
 * 
 */

package com.the9tcat.funnyalarmclock.sina;

import com.the9tcat.funnyalarmclock.oauth.Oauth;
import com.the9tcat.funnyalarmclock.oauth.OauthConfig;
import com.the9tcat.funnyalarmclock.oauth.OauthListener;

import android.content.Context;
import android.os.Bundle;

import java.util.List;

/**
 * @author jianhpin
 */
public class SinaWeibo {

    private String app_key = "3509039754";

    private String app_secret = "888ff6f1acdce23fe024c28900128387";

    Context mContext;

    private String oauth_token = "";

    private String oauth_token_secret = "";

    private String oauth_verifier = "";

    private String user_id = "";

    private SinaListener mListener;
    Oauth oauth;

    public SinaWeibo(Context con, SinaListener listener) {
        mContext = con;
        mListener = listener;
        oauth = new Oauth(mContext, app_key, app_secret);
    }

    public List<WeiboUser> getFriends(String userId) {
        return null;
    }

    public void doOauth() {
        String result = oauth.requestOauthToken(SinaConfig.REQUEST_TOKEN_URL);

        String[] str = result.split("&");
        oauth_token = str[0].substring(str[0].indexOf("=") + 1);
        oauth_token_secret = str[1].substring(str[1].indexOf("=") + 1);

        // Logger.d("***", oauth_token);
        // Logger.d("***", oauth_token_secret);
        //        
        String url = SinaConfig.AUTHORIZE_URL + "?oauth_token=" + oauth_token
                + "&oauth_callback=" + OauthConfig.oauth_callback;
        //        
        // Logger.d("***", url);
        oauth.userAuthorize(url, new Listener());
    }

    class Listener implements OauthListener {

        /*
         * (non-Javadoc)
         * @see com.jp.weibo.oauth.OauthListener#onComplete(android.os.Bundle)
         */
        @Override
        public void onComplete(Bundle data) {
            oauth_token = data.getString(OauthConfig.extra_oauth_token);
            oauth_verifier = data.getString(OauthConfig.extra_oauth_verifier);

            String result = oauth
                    .requestAccessToken(SinaConfig.ACCESS_TOKEN_URL,
                                        oauth_token, oauth_token_secret,
                                        oauth_verifier);
            String[] str = result.split("&");
            oauth_token = str[0].substring(str[0].indexOf("=") + 1);
            oauth_token_secret = str[1].substring(str[1].indexOf("=") + 1);
            user_id = str[2].substring(str[2].indexOf("=") + 1);

            Bundle b = new Bundle();
            b.putString("oauth_token", oauth_token);
            b.putString("oauth_token_secret", oauth_token_secret);
            b.putString("oauth_verifier", oauth_verifier);
            b.putString("user_id", user_id);
            mListener.onAuthorized(b);
        }

        /*
         * (non-Javadoc)
         * @see com.jp.weibo.oauth.OauthListener#onError(android.os.Bundle)
         */
        @Override
        public void onError(Bundle data) {
        }
    }
}
